struct Vertex_PN
{
	float3 position : POSITION;
	float3 normal : NORMAL;
};

struct Vertex_PNT
{
	float3 position : POSITION;
	float3 normal : NORMAL;
	float2 texCoord : TEXCOORD;
};

struct Vertex_PNTT
{
	float3 position : POSITION;
	float3 normal : NORMAL;
	float3 tangent : TANGENT;
	float2 texCoord : TEXCOORD;
};

struct VS_PN_Out
{
	float4 positionH : SV_POSITION;
	float3 positionW : W_POSITION;
	float3 normalW : W_NORMAL;
};

typedef VS_PN_Out PS_PN_In;

struct VS_PNT_Out
{
	float4 positionH : SV_POSITION;
	float3 positionW : W_POSITION;
	float3 normalW : W_NORMAL;
	float2 texCoord : O_TEXCOORD;
};

typedef VS_PNT_Out PS_PNT_In;

struct VS_PNTT_Out
{
	float4 positionH : SV_POSITION;
	float3 positionW : W_POSITION;
	float3 normalW : W_NORMAL;
	float3 tangentW : W_TANGENT;
	float2 texCoord : O_TEXCOORD;
};

typedef VS_PNTT_Out PS_PNTT_In;